System and method for collision detection and avoidance for network communications

ABSTRACT

A system and method for collision detection and avoidance that converts a probabilistic, packet based communications system into a deterministic packet based communications system. The system and method operates in packet, frame, or datagram based network environments that support different levels of forwarding priority, for example, IP networks and Ethernet networks.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of co-pending U.S. patent applicationSer. No. 12/968,377 filed Dec. 15, 2010, and entitled SYSTEM AND METHODFOR COLLISION DETECTION AND AVOIDANCE DURING PACKET BASEDCOMMUNICATIONS, which in turn claims priority to and benefit of U.S.Provisional Patent Application No. 61/287,153, entitled SYSTEM ANDMETHOD FOR COLLISION DETECTION AND AVOIDANCE DURING PACKET BASEDCOMMUNICATIONS, filed Dec. 16, 2009, the contents of which are herebyincorporated by reference in their entirety for all purposes.

BACKGROUND

The system and method of the present embodiment relate generally todelivering data packets across a shared medium communications network byfirst using algorithms to detect communications interactions(collisions) and subsequently using different algorithms to avoid thesecommunications interactions, thereby converting the communicationssystem from a probabilistic communications environment into adeterministic communications environment.

Quality of packet, frame, or datagram based (hereafter simply referredto as packet based) communications can be affected if the communicationssystem is probabilistic in nature. A non-deterministic or probabilisticsystem can allow packets from one service to collide with packets fromanother network services (two or more data packets attempting to use thesame communications resource at the same time), resulting in servicecontention at network choke points. This contention can result incommunications degradation through packet loss, excessive delay, andenhanced jitter (change in delay). Further, loss of quality can occur atany point during the service transmission. Therefore, a communicationservice that starts out working with no contention may experiencesignificant contention and quality degradation at some point during itscommunications session.

While it is possible to use different priority levels in an attempt toimprove communications, using priority levels alone does not remove theprobabilistic nature of packet based communications; priorities justimprove the probabilities of one service at the expense of anotherservice. Further, a service may attempt to mitigate contention throughreducing data rates, adding error correction information, or acombination of these techniques. These adjustments either reduce servicequality (through reduced data rates) or increase bandwidth requirements(through error correction information), yet these efforts do not removethe probabilistic nature of the communications medium. Even further,other systems may attempt to mitigate contention through a “training”period where an endpoint investigates potential contention before addingtraffic to the network environment. The endpoint then uses thatinformation to control its traffic insertion. However, this techniquefails if the underlying network environment changes during thecommunications session (for example, a link is lost and traffic isshunted to another path, or an over-the-air—e.g. satellite ormicrowave—path experiences noise and data rate degradation), makingobsolete the information gathered during the training period. A furthercontention mitigation attempt uses a centralized control system tomanage when services can insert their traffic into the network. Managednetworks remove the autonomous nature of packet based communicationswhile adding a limit to service setup speed and limiting systemscalability.

Further, probabilistic communications environments reduce thecommunications environment ability to offer various communicationsfeatures and capabilities. For example, if priority is used to reduceprobabilistic interactions of different service types, it removes theenvironment's capability of allowing preemption of communications withina service type or across service types. Consider a network that usesfour priority levels to separate out contention between differentservices. The highest priority (e.g. priority 3) may be reserved fornetwork control and management; the second highest (e.g. priority 2) maybe reserved for voice traffic; the third highest (e.g. priority 1) maybe reserved for video traffic; while the lowest priority is reserved forall other traffic. If a video service must preempt all other videoservices (for example, it is an emergency or other critical video), itcould not do so at priority 1. Therefore, it would need to increase itspriority to 2, where it would interfere with and interact with all ofthe voice traffic. While the video would preempt other video traffic, itwould still be interfered with by voice traffic, and therefore not bedeterministic. The video could attempt to increase its priority evenfurther to priority 3, but it would then contend with managementtraffic. If a management service needed to preempt other managementservices, it would need to increase its priority above 3, which is notpossible. This is an example of how a non-deterministic environmentcould not provide a preemption option to its various services sincepreemption would still not be deterministic, and would either interferewith other services or not have a priority that would be used forpreemption. Non-deterministic communications reduces the quality of dataservices across the network. Services cannot guarantee data delivery andtherefore they cannot provide truly high-availability communications,provide the highest security levels, fully utilize the underlyingnetwork infrastructure, and allow the network owner to manage thecommunication services as true services instead of as packet streams.

What is needed is a system and method that allows communicationsservices on a packet based, shared medium network to work in adeterministic manner, resulting in superior and predictablecommunications quality. What is further needed is a system and methodthat can enable detection and avoidance of packet collision, thuseliminating resource contention at network choke-points. What is stillfurther needed is a system and method that can detect changes in theunderlying communications environment while a service is active (and atany point during the communications' lifetime) and adjust services tothose changes, reestablishing full determinism to the services usingthat communications environment. What is still further needed is asystem and method that can detect and adjust to contention automaticallyand completely autonomously, and therefore does not need a separatetraining period or central server to control data insertion into thenetwork.

What is even still further needed is a system and method that providesdeterministic communications and therefore allows all services access toall features and capabilities of the communications environment. What isstill further needed is a system and method that allows servicepreemption based on service preemption needs, not on service type. Whatis even further needed is a system and method that allows deterministiccommunications of all services, therefore allowing management of thoseservices as data services and not as packet streams. Finally, what isneeded is a system and method that provides all of these capabilitieswithout having to manage, manipulate, change, configure, alter, train,analyze, control, or otherwise affect the core communicationsinfrastructure to enable existing, new, or evolving communicationsservices to function in a deterministic and consistent manner.

SUMMARY

The needs set forth above as well as further and other needs andadvantages are addressed by the embodiments set forth below.

The embodiment describes a system and method for deterministicallydelivering packets across a network, based on first using a time-basedresource reservation scheme to control data transmissions. Next, usingstatistics and algorithms for detecting data stream interaction withinthe communications channel. Finally having the source adjust itstransmission timing and thereby avoid data stream interactions thatwould otherwise adversely affect the quality of bearer traffic.

The data source inserts its data traffic at consistent and controlledintervals. The data receiver continuously evaluates the timingstatistics of the received packets, looking for packet loss, delay,jitter (changes in delay), and other communications impairments. Thedata source is constantly informed of the statistical analysis and itcan adjust its transmission timing if the statistics indicate animpairment of the received data. Consequently, what would otherwise beprobabilistic performance can be converted into a deterministicperformance since the system detects, and then avoids servicecontention, and thereby eliminating the impairments caused by thatcontention. The approach is operative in both packet and frame-basednetwork environments (for example, Internet Protocol, Ethernet, andother datagram based communications on a shared medium), and permitsseveral different preemption levels for forwarding traffic from atransmitting endpoint appliance or network edge-point to a receivingendpoint appliance or network edge-point.

For a better understanding of the present embodiments, together withother and further objects thereof, reference is made to the accompanyingdrawings and detailed description.

DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram of a sample network that will be used in thediscussion of the embodiment. The diagram indicates four endpointsystems labeled A, B, C, and D. Endpoint systems A will attempt to senddata to Endpoint B, while C will send data to D. The source endpointscan send any form of data source, for example, but not limited to,audio, video, database data, web page data, file data, and so forth; thediagram indicates video and audio data. The diagram indicates a numberof switch/router network elements (elements 10-15). The elements 12 and13 are connected via a single communications link. That connection is apotential network choke point, where service packets may interact whileattempting to get network resources (the resource being the outbounddata link). Other contention points may exist in the network but theyare not shown here for brevity and ease of discussion.

FIG. 2 shows how timing is part of the transmission system. FIG. 2A usesa line to indicate time, with time increasing to the right. A unit oftime is marked off and is indicated as the Common Time Interval. Allsystems using the described technology within a given networkedcommunications environment would all use the same Common Time Interval.The time interval can be of any value that is convenient for theunderlying communications and applications. Intervals tend to be short,on the order of 10-50 milliseconds, to reduce the delay associated withaccumulating the data into packets prior to transmissions. FIG. 2b showsthe environment when a single service starts transmitting into theotherwise unused network. Note that the transmissions occur regularlywith the intervals and also that the transmission occurs at the samerelative position within the interval. FIG. 2c shows the establishedAutonomous Chronological Service (ACS) continuously transmitting on itstime offset.

FIG. 3 shows the network environment when a second AutonomousChronological Service (ACS) starts to transmit. FIG. 3a shows theestablished ACS transmitting on its offset. FIG. 3b shows the secondservice attempting to transmit at two different times during its initialstartup transmission. FIG. 3c shows the packets as received by thereceiver. Note that the first block of packets is delayed since thetransmission collided with the already establish ACS. The second blockof packets did not collide with the established ACS and therefore didnot experience any delay. The service would choose the second timeoffset since it did not experience any impairments (in this case adelay).

FIG. 4 is a state diagram that shows the states the transmission systemcan be in and the transitions between various states.

FIG. 5 is a state diagram that shows the states the receiving system canbe in and the transitions between the various states.

FIG. 6A-C presents a flowchart that depicts an algorithms thatimplements the methods for the embodiment described herein. Theflowcharts show the actions of both the Source (on the left of thecharts) and the Sink (on the right) and indicate the interactionsbetween the Source and Sink. In addition, the flowcharts show where inthe activities the states change, which represents the states indicatedin FIG. 4 and FIG. 5.

FIG. 7 shows the timing of a new ACS preempting an existing ACS. FIG. 7Adepicts the timing of the original ACS. FIG. 7B shows the relativetiming of the original ACS and the new, preempting ACS. FIG. 7C showsthe timing of the ACS as received at the first data sink. Note in FIG.7C a gap in the packet arrival times. This gap is known as a “shadow”and the shadow indicates a preemption event.

FIG. 8 is a sample communications system that embodies the system andmethods described herein. This sample system is a simple embodiment, butis by no means the only possible embodiment. The current technology canbe used on simple environment with a small number of endpoints andnetwork elements to extremely complex network environments encompassingthousands (or even millions) of endpoints and hundreds or thousands ofnetwork elements. The sample system is used for illustrative purposes.Source System 100 will insert ACS traffic into the network representedby Switch/Routers 101 and 102. The Sink System 103 receives the ACSdata, performs the statistical analysis and reports the results back to100. All embodiments can be viewed as replications of these simplebuilding blocks. That is, all embodiments consist of a Source, a Sink,and a Network.

FIG. 9 is a block diagram of the data service Source. It depicts thefunctional blocks that the system uses to implement the various methodsof the described embodiment. Note that the Source is both a transmitterand receiver, in that it transmits ACS and other data, and receivesstatistics, acknowledgements, and other data.

FIG. 10 is a block diagram of the data service Sink. It depicts thefunctional blocks that the system uses to implement the various methodsof the described embodiment. Note that the Sink is both a receiver and atransmitter, in that it receives ACS and other data, and it transmitsstatistics, acknowledgements, and other data.

FIG. 11 is a block diagram of a sample embodiment of a transmitter andreceiver system. This embodiment could be used as a Source, a Sink, orboth.

FIG. 12 is a block diagram of a sample embodiment of the InformationTransmitting System.

FIG. 13 is a block diagram of a sample embodiment of the InformationReceiving System.

DETAILED DESCRIPTION Definitions and Acronyms

Several specialized terms and acronyms are used in this document, whichare defined in the table below:

Network For this document, a network refers to a communicationsenvironment where two or more devices can communicate by exchanging data“packets”. The network consists of a number of elements or nodes thatcan do one or more of: source data, sink (terminate) data, or receiveand forward data. There may be other nodes within the network, such asmonitoring and management nodes; these nodes are beyond the scope ofthis document except for when that are sending or receiving data. Datatraverses the network using “packet switching” as opposed to circuitswitching. Packet A packet of data is a block of data organized in aprotocol-defined fashion. Examples of packet-based communicationsinclude, but not limited to, Internet Protocol (IP), Ethernet, X.25, andAsynchronous Transfer Mode (ATM). Packet Switch A packet switch networkis a communications environment where Network (PSN) data is moved acrossthe network as packets. The intermediate nodes, in the communicationsenvironment use part of the data in the packet to make decisions as tohow to forward the packet. That is, a packet is received on an inputport, the destination address is extracted from the packet and examined,and the intermediate node uses that address to determine which ofseveral output ports the system should use in forwarding the packet.Therefore, the packet is switched from an input port to an output port.Data Source A data source is a communications “endpoint” that is thestarting point of a communications “service” and inserts data into apacket switch network. Data Sink A data sink is a communications“endpoint” and is the ending point of a communications “service” andreceives and removes data from the packet switch network Service Aservice is the term used for a communications application where two ormore “endpoints” are communicating. A service consists of a single datasource and one or more data sinks. A bidirectional service consists ofendpoints that are both data sources and data sinks. For example, avideo system that is delivering movies to users is a unidirectionalservice, with the movie server as the source and the users watching themovie are the sinks. A video conference, on the other hand, is anexample of a bidirectional service, since both users send and receivevideo and audio data. A bidirectional service can also be viewed as twounidirectional services. Packet Queuing A packet switched networkreceives data packets autonomously from the various data sources. Sinceit is possible that multiple packets might need to use the same outputport at the same time, a network forwarding element will store somepackets while it is transmitting others. Typically, the system willstore packets in a first-in, first-out (FIFO) fashion, similar to aqueue at a bank or ticket counter. Packets waiting to a transmissionresource are said to be on a queue. Forwarding systems do not haveunlimited capacity, and at times the queue may be full when a new packetarrives to be placed on the queue. The forwarding system must eitherdiscard the newly arrived packet since there is no room on the queue, ordiscard a packet waiting on the queue to make room for the new packet.This packet discarding is known as queue overflow. Note that packets mayalso be lost within a network due to environment noise or hardwaremalfunction. Collision When multiple data services attempt to use thesame communications resource at the same time, the services are said tohave collided. Service collisions cause impairments to thecommunications that are colliding. In a probabilistic communicationsenvironment, the sources are autonomous and asynchronous. Serviceinteractions are probabilistic in nature, and service impairments aretherefore probabilistic and not deterministic. Probabilistic In aprobabilistic communications system, there is a finite probabilityCommunications the communications data will be impaired prior toreaching the data sink. In a packet switched network, the impairmentsinclude packet discard (packet loss), packet delay, packet jitter(changes in delay), packet reordering (that is packets arrive at thesink in a different order than the order used during transmission by thesource), and other such impairments. In a probabilistic network, theimpairments are unbounded, but tend to meet some probabilisticdistribution. Most of the impairments are due to resource contention,such as packet queues and transmitter bandwidth. With a probabilisticcommunications environment, it is impossible to determine with completecertainty network utilization, resource contention, or the ability ofthe network to deliver accurately the data from source to sink.Deterministic In a deterministic communications system, the impairmentsCommunications experienced by the data packets are bounded andpredictable. A deterministic system does not experience packet loss dueto queue overflows. In addition, with a deterministic communicationsenvironment, it is possible to determine network utilization, resourcecontention, and the ability of the network to deliver data accurately.QoS Quality of Service - the level of quality a particularcommunications service will experience on the network. In aprobabilistic communications environment, QoS refers to the impairmentprobabilities a service will experience. It also refers to the varioustechniques used (such as prioritization, communications path management,and over provisioning) to adjust impairment probabilities. In adeterministic environment, traditional PSN QoS does not apply, sinceservices do not experience probabilistic impairments. Service There maybe times when more services desire network access than Preemption thenetwork can support (over subscription). Preemption refers to aparticular service that has higher access priority than other servicesand therefore receives preferential use of the network. The higherpriority service will continue to communicate while one or more low-priority (preempted) services must terminate to yield their bandwidth tothe high priority service. Autonomous In the current embodiment, datasources use time to control the Chronological insertion of data into thenetwork (thus, they are a chronological Service (ACS) service). Inaddition, the services do not need any form of external control, andthus are autonomous from all other services, making them AutonomousChronological Services. Over Collisions in a probabilistic environmentoccur randomly. The Provisioning probability of a collision increases asthe utilization of the network increases. Therefore, reduction incollision probability can be achieved by limiting the networkutilization to a small portion of the available bandwidth. Thisunderutilization of the network is known as over provisioning since thenetwork is provisioned to be many times (4-10 time) greater than what itwill be used for. Service A service requires a certain amount of networkresources to support Footprint it. Primarily a service requires acertain amount of bandwidth from source to sink. However, a servicefootprint is more than just bandwidth requirements. It includes numberand size of packets as well as the maximum number of packets that couldbe transmitted at one time (burst). Transmission When data istransmitted in a PSN, the data source first puts the data Burst into apacket. Packets have a limited size (1500 bytes in an Ethernetenvironment). However, if the data is greater than the maximum packetsize, the data must be spread across multiple packets. A source maytransmit all of these packets at once, and these appear on the networkas a continuous stream of packets. A service that transmits a largeburst has a larger service footprint than one that uses a smaller burst,even if they use the same overall bandwidth. Common Time A unit of timeagreed upon by all systems within a communications Interval (CTI)environment that will be using the described technology fordeterministic communications. Services insert their data into thenetwork at the same time offset within the CTI, allowing other servicesto detect them and avoid colliding with the established services. TheCTI is shown in FIG. 2. Time Offset Services using the presentembodiment transmit their time at an offset within a common timeinterval. The offset is a continuous time value and not limited topre-determined time slices (time slots). The minimum time quantum of theoffset is limited to the time capability of the transmitting system andthe minimum time it takes to transmit a single item (typically a byte)on the network interface. CDAT Collision Detection and AvoidanceTechnology is the technology described in the present embodiment.

The present embodiment is now described more fully hereinafter withreference to the accompanying drawings and definitions. During thedescription, a communications system configuration description ispresented for illustrative purposes only. Any computer configuration andarchitecture satisfying the speed and interface requirements hereindescribed may be suitable for implementing the system and method of thepresent embodiment.

In the system and methods of the present embodiment, all datatransmission applications and services (hereafter called “Service”)transmit their data during their determined time offset within a “CommonTime Interval” (CTI). The CTI is a small (for example, 10 milliseconds)unit of time used for managing services and allowing the detection andavoidance methods to execute (see FIG. 2). The CTI is selected and usednetwork-wide for all elements participating in communications accordingto the system and methods of the present embodiment. Each data sourcecan synchronize to the CTI using one of a plurality of different timingmechanisms, for example, but not limited to, Building Integrated TimingSystem (BITS), time derived from the Global Position System (OPS),network-based synchronization systems, Stratum-3 or better clock system,or similar synchronization systems. How the endpoints use the selectedsynchronization method to establish internal timing is beyond the scopeof this document. However, we assume accurate timing is available to thedifferent systems participating in the communications environment tokeep the interval timing consistent for the life of the communications.

In addition to a synchronization method at each endpoint, we also assumethe underlying communications network allows some level ofprioritization for the forwarding of the packet traffic. Traditionalnetwork systems assign priorities based on traffic type and usepriorities in an attempt to lower impairment probabilities. For example,all traffic of one type (e.g. video) may have a lower priority than allof the traffic of another type (e.g. voice). As more and differenttraffic types require prioritization, more priority levels are required.The current embodiment described here changes the way priorities areused in the network. Prioritization is used to manage Service preemptionand network collision detection and mitigation, not prioritization oftraffic type in an attempt to manage impairment probabilities.

While Services on a non-prioritized network can benefit from the currentembodiment, the most communications benefit is obtained with a networkthat supports at least three priority levels. With three prioritylevels, the lowest level would be used by standard, best-effort traffic.The next higher priority level would be used for collision mitigationand Service management. The highest priority level would be reserved forService bearer traffic. Adding priority levels allows Service trafficthat can preempt other Services. Preemption will be described in moredetail later in the document.

The Service transmission can be in one of a plurality of differenttransmission states (See FIG. 4), for example, but not limited to,service setup (state 1), service time offset detection and avoidancetesting (state 2), service transmission (state 3), collision or networkalteration detection (state 4), collision or alteration mitigation(state 5), and service termination (state 6). These states will be usedto help describe the actions and methods of Services to establish andmaintain perfect communications.

State 1 is entered when the Service is initiated, and is used tovalidate the end-to-end connection and establish service parameters.State 2 is the state used to detect other services within theenvironment and to avoid those services to minimize service disruption.State 3 is the state in which most of the service data are transmitted.Data is transmitted and the transmitter enters State 4 to receive thestatistics on its transmissions. If the statistics indicate no collisionor network alteration was detected, the system reverts back to State 3to continue transmitting. If a collision or alteration was detected, thetransmitter enters State 5 in an attempt to mitigate the issuesdetected. State 5 is used to adjust the transmission offset to removethe detected network affect. State 6 is entered from State 3 as theservice completes, allowing the network to recover the used resources.State 6 may also be entered from State 5 if the service determines itwas preempted and no network resources are currently available for thisservice to continue transmitting.

The Service receiver (or data sink) can be in one of a plurality ofdifferent reception states (see FIG. 5), for example, but not limitedto, service setup (State 1), data reception (State 3), statisticalreporting (State 3), and reception terminated (State 4).

Both the source and sink enter their respective States 1 when they areestablishing the service. Service setup implies a connection-orientedcommunications system between the source and sink. A connection isimportant, since the sink must report statistics back to the source, sothe source can detect and mitigate effects from network reconfigurationsand service preemption. Examples of connections in a network environmentare: a connection to a file server to download a file, a connectionbetween two users for a voice over IP phone call, a connection to amovie web site (such as Netflix) in order to watch a movie, and so on.All of these are examples of services that would benefit from thetechnology described herein.

Once the service has been established via the connection setup, both thetransmitter and receiver enter their respective States 2. The sourcetransmits its packets at the detection and avoidance priority level(which is lower than or equal to the normal Service transmissionpriority level). The data sink (receiver) receives the packets and timestamps each packet. It also performs some minor statistical calculationsone the packets (such as inter-packet timing). The receiver enters itsState 3 to report the statistics and then reverts back to State 2 inorder to receive more data.

Consulting FIG. 1, endpoint A (data source) has established a connectionto endpoint D (data sink). Both endpoints agree on a Common TimeInterval (CTI) as depicted in FIG. 2A. Both endpoints enter State 2, andendpoint A randomly selects an offset and starts transmitting using thatoffset (FIG. 2B). For this example, the CTI is 10 milliseconds andendpoint A is transmitting 4 packets of 1250 bytes each, for a total of4×1250×100×8=4 megabits of data per second (for example, endpoint Acould be streaming a video to endpoint D). Endpoint D receives thepackets, performs its statistical analysis, and reports the results backto A. Endpoint A analyzes the statistics, does not detect anycollisions, and therefore it selects the offset as the one it will usefor this service. Endpoint A now enters its State 3, where it sets itstransmission priority to the Service priority and transmits its data.Endpoint D continues to receive data, calculates statistics, and reportsthe results back to Endpoint A. Unless the network experiences anoutage, or a new service preempts the service between A and D, thisservice will continue until all data has been transmitted or one of theendpoints terminates the service. Note that this service was establishedcompletely autonomously from the rest of the network. Neither any otherendpoint nor any of the switches and routers was informed of the servicebeing established. This service is known as an Autonomous ChronologicalService (ACS) since while it is autonomous, it requires timing to manageits packet transmissions.

Now we consider the situation when a second service, one betweenendpoints C and B, starts up while the first service is stilloperational. Since both services will traverse the same link between S/R12 and S/R 13 (FIG. 1), there may be contention on using that link. FIG.3A shows the link prior to the setup of the second service, with thetraffic from the first ACS traversing the link unimpaired. The secondservice, during its State 2, picks a random offset as shown in the firstCTI of FIG. 3B. Note that this offset happens to overlap thetransmission of first ACS. As we see in the first CTI of FIG. 3C, thepackets of ACS 2 are delayed because of the collision with ACS 1.Therefore, endpoint C randomly picks a new offset and transmits its dataon that offset (the second CTI of FIG. 3B). Since this transmission doesnot collide with ACS 1, this offset is selected by endpoint C as itstransmission offset. Both services can transmit and experience perfectservice quality, since once established they will not collide with eachother. Many services could use this technique to establish their offset,and once established, all services would use the network unimpeded.

The system and method of the present embodiment can allow the use ofmultiple service preemption priorities. A high preemption priorityservice can use a different, higher forwarding priority than thestandard service. The higher preemption priority service can also usethe same plurality of states as outlined previously for the normalpriority service. However, since the higher preemption priority servicecan use a higher forwarding priority, its transmissions could disruptthe lower preemption priority services. This disruption is detectedthrough statistical analysis in State 4. The lower preemption priorityservice can then attempt to mitigate the disruption by entering State 5.It may find that there is no longer space available in the network forthis service, in which case, the lower priority service can terminatewith, for example, an “overridden” error by entering State 6.

As an example, consider the case where a service is established betweenendpoints A and D and the service is transmitting as described before(FIG. 7A). However, when the second service (between C and B) starts up,it is a higher priority, preemption service. As last time, a randomoffset is selected for the service transmission, and again the servicescollide. However, unlike the previous situation, this new service's (ACS2) packets are at a higher priority (preemption priority) than thenormal service's (ACS 1) packets. Therefore, ACS 2 is not aware of theACS 1's packets. However, ACS 1 experiences a collision, which resultsin a gap in the received packets timing (FIG. 7C). This gap is known asa shadow and the shadow indicates a preemption service has collided withACS 1. (Note that there are other indicators of preemption besides theshadow identified here.) Since ACS 1 was preempted, it must pick a newtime offset for its transmissions. Therefore, endpoint A enters State 5(from FIG. 4) and attempts to mitigate the effects of the preemption. Itpicks new offsets attempt to find an offset that is not used by eitherthe preemption service or other normal services. If an offset can befound that has no collisions, then that offset can be used. Otherwise,ACS1 must indicate that it was preempted by entering State 6.

There can be any number of service preemption priority levels as long asthere are enough different forwarding priority levels within the networkequipment. The network equipment must support N+2 priority levels, whereN is the number of different service preemption priority levels (notethat for a single service priority level, with no preemption, N=1).These service preemption priorities can be used to differentiate theservice levels, not service types. For example, there could be a largenumber of video service types all sharing the same service preemptionpriority level. There could also be the same video service types at ahigher preemption priority level because they have special meaning (forexample, these videos could be from a source that detects an intrusionevent in a security environment). Service preemption priority becomes apolicy decision, not a networking technology decision. There is not atechnological reason for assigning services different preemptionpriority levels according to the present embodiment. Thus, the systemand method of the present embodiment can support all service types on asingle preemption priority level, which would also use a singleforwarding priority level.

Each service source can support a low-drift timing system that willdrift less than, for example, 3.7×10⁻⁷ in twenty-four hours. The timingsource can be, for example, a Stratum-3 clock source or, if the systemis not expected to require timing holdover (it will always be connectedto a timing source) it can use, for example, a Stratum-4 clock system.The clock controls the timing of the transmissions, and measures out theCommon Time Interval (e.g. 10 ms). The service source uses the clock forperforming transmissions. The service destination can use the clock forstatistics of the received packets. The more accurate and stable theclock, the more accurate and stable the transmissions and receptions,increasing the utilization of the network by services operatingaccording to the system and method of the present embodiment.

Services have transmission sources and transmission destinations. Aservice source randomly selects a time within the 10 ms interval totransmit data. The transmission start time can be chosen so thattransmission of this service will not interfere with transmission of anyother service from the device. The transmission start time can be usedfor State 1 in which the source creates a message that contains, forexample, but not limited to, the following information: service type,service identification, message identification, call size, call minimum,time stamp, time interval, service specific information, and padding.The service type is a service specific identifier that allows thereceiving device at the destination to interpret and direct the receivedpackets to the correct application. The service identification is alocally generated value that allows managing of the service between thesource and the destination. The message identification is a value forthe message, for example, but not limited to, a uniformly increasingvalue, that can be used for example, for message tracking. The call sizeis the maximum number of bytes that are transmitted in each 10 msinterval. The call minimum is the minimum number of bytes that can betransmitted in each 10 ms interval. The time stamp is the time derivedfrom the local clock source; the time interval for this service is thetime, in, for example nanoseconds, that specify the global timeinterval, for example, 10 ms or 10,000,000 nanoseconds. The servicespecific information is any information that is needed by the service toallow the service to be set up correctly. The padding is enough extradata to set the message size equal to the call size.

The message is broken up into packets that are roughly equal size. Atleast two packets are created and this group of packets is transmittedsequentially into the network. The transmission occurs at the call setupforwarding priority level. The receiving device calculates a timestamprecording the reception of each packet. These timestamps can be used toperform the analysis of the data reception. The receiving device cancreate an acknowledgement packet that can contain, for example, but notlimited to, service type, service identification, messageidentification, packet identification, packet size, and time stamp foreach received packet. The first packet in the message can be, forexample, but not limited to, identification 0, the second can beidentification 1, and so on. The packet size is the size of the receivedpacket in bits. The time stamp is the time when the packet was fullyreceived. If an error (e.g. a CRC error) causes a packet reception to beterminated, that error is indicated in the acknowledgement message. Theacknowledgement message is sent to the source which can use the timestamp to calculate, for example, but not limited to, effectivebandwidth, minimum, maximum, and average inter-packet time (usingdifferences between all of the time stamps), and added traversal spacing(equal to the time it takes a packet to be transmitted from source todestination minus the time is should take calculated using packet sizeand bandwidth). The destination can record the minimum, maximum, andaverage added spacing. The source can send more test messages of thesame size and packet profile as this first test message, for example,but not limited to, seven test messages. The destination can record andreport the statistics, and the source can analyze and record thestatistics and create a profile of that time slice based on thesestatistics. If the effective bandwidth is less than the service size,the service cannot be established. An error indication can be created toindicate the service problem and the service can terminate by enteringstate 6.

The source can start sending service data, continuing to transmit at thecall setup priority level. The destination can receive and record theservice data and the service data statistics, and report thosestatistics back to the source every interval. Alternatively, thedestination can accumulate the statistics and transmit the resultsperiodically, for example, but not limited to, once every fourintervals. The accumulation of statistics between transmissions canreduce the amount of traffic on the return path.

The source can select a different time offset for the transmission ofservice data. The source can transmit in that offset for a number oftransmission cycles, for example, four transmission cycles, accumulatingstatistics for that time offset. After several cycles, the source canselect a different time offset and transmits in that offset for severalcycles. The source can perform this probing of offsets over for severaldifferent time offsets, for example, eight, and then compare profilesfor each offset. The source can use profile analysis to select the bestoffset for the transmission. The analysis can look for, but not limitedto, statistics that show greatest effective bandwidth, minimum delay,minimum inter-packet spacing, minimum jitter, and other data that couldindicate collision and other interactions. The selected offset is usedfor normal transmissions.

The source can transit to State 3 for normal transmissions, and cantransmit service data at the service priority level and using theselected time offset. The destination can continue to gather statisticsand report the results to the source. The source can analyze thestatistics looking for a collision event. A collision event can bedeclared if any of the following occur for more than a certain number,for example three, consecutive intervals or over a certain pre-selectedthreshold which can be determined by policy, but could be, for example,but not limited to, fifteen intervals in a one-second time frame or 150intervals in a one-minute time frame: (1) if the effective bandwidthdecreases by more than a certain amount, for example ten percent, or (2)if the added spacing average increases by more than a service-definedamount which can depend upon the number of hops, for example, but notlimited to, three or four packet sizes, or (3) if the maximum addedspacing increases by more than a service-defined amount which can dependon the number of hops, for example, six to ten packet sizes. If acollision event is declared, the service transits to State 5. In State 5the source can send a message to the destination of the state transitionand perform the State 5 mitigation. In state 5 the service can revert totransmitting at the call setup forwarding priority level and selects anew random time offset in an attempt to find a new, available offset.The service can select several different time offsets, for example,four, attempting to find one that is as good as or better than itsprevious offset (within service-defined bounds). If after severalattempts, for example, four, the service finds one or more offsets thatmeet the requirements, it selects the best one and transitions back toState 3. If none of these attempts meets the requirements, the servicewill continue to cycle into state 5 for more attempts. If during theseattempts, the service finds the effective bandwidth is less than theservice size, it will transit into State 6 with an out-of-bandwidtherror. The service can remain in state 5 for a number of attemptsdefined by policy and service type, for example, but not limited to,three attempts. If, after exhausting all of the attempts, the service isunable to find a suitable time, but it does find at least a certainnumber, for example, two, with similar characteristics, the service canassume a network failover has occurred to a lower bandwidth path and canpick the best time slot, generate an error indicating thelower-bandwidth transmission, and transition to state 3. If the systemdetects another collision event after detecting the lower-bandwidthtransition in State 5, the system can determine that there is too muchtraffic on the network and determine the policy for action, for example,to terminate the service.

FIG. 8 depicts a sample communications environment used for a sampleservice. The Source System 100 provides the data being sources into thenetwork. The network is represented by Switch/Router 101 and 102. Thedestination of the service is Sink System 103. Source System 100 can beany form of computer or electronic device that can connect to the packetbased network, transmit packets into the network using the techniquesand algorithms of the present embodiment, receive statistics from SinkSystem 103, and use those statistics and apply algorithms to detect andmitigate collisions. Sink System 103 can be any form of computer orelectronic device that can connect to the packet based network, receivepackets from the network, perform the time stamping and statisticalalgorithms of the present embodiment, and report statistics to theSource System 100. Switch/Router Systems 101 and 102 represent anynetwork forwarding element that implements the functions of a packetswitched network element and can provide at least two and preferablemore levels of prioritization. Note that the network elements do notneed to provide other forwarding features, such as label switch (forexample MPLS), traffic shaping, resource reservation, and other QoSfeatures.

Data Source system (100) must implement a number of functions in orderto provide the capabilities described in the present embodiment. Anexample of an architecture to implement these functions is given in FIG.9. Other architectures or expansions of this sample architecture mayalso be used to provide the capabilities of communications describedherein with this present embodiment. The functions identified in FIG. 8can be implemented in hardware, software, firmware, or some combinationof these elements and include Time Management System (200), CDATProtocol System (201), Packet Control System (202), Error Management(203), CDAT Analysis (204), and CDAT Mitigation System (205). Thesefunctions must exchange data and control information, as shown in FIG.9, which will be described below.

Referring primarily to FIG. 9, the various functions and data exchangeswill now be described. The Timing Management System (200) controls andmanages timing for the system. The Timing Management System receivestiming information from an external source via the External Time Source(216) communications channel. This timing information may come from oneor more sources, including, but not limited to, internal time card thatmeets Stratum 3 or better capability, external timing from a BITSsource, timing extraction from a GPS receiver system, synchronizationover the network via a network-based timing system, or other similarreference timing. The Timing Management System provides two differenttypes of time management for the system. It provides Transmission TimingControl (212) for controlling when packets are transmitted within aCommon Timing Interval. The Timing Management System also provides timestamping functionality via the Time Stamp Interface (213). Each packetthat is transmitted using the current system gets time stamps to supportstatistical analysis. If the Timing Management System detects an error(for example, the timing source becomes unavailable), the error isreported to the Error Management (203) function via the ErrorInformation (221) channel.

The CDAT Protocol System (201) is the system that manages the protocolused to implement the present embodiment. It is also the system thatmanages the system states as identified in FIG. 4. A protocol defineshow to interpret messages and what actions to take based on eventsassociated with the service communications. The protocol defines theinformation that must be transferred from the source to the sink inaddition to the service's data traffic. The information includes, butnot limited to, time stamp information, packet identification, serviceidentification, and error information (if any). The CDAT Protocol Systemalso receives information back from the Sink system (block 103 of FIG.7) that includes (but not limited to) received packet time stamps andstatistical information. It is the flow of packets out to thedestination, the packets received from the Sink, and the analysis andmitigation information that controls the States and State transitions ofthe system.

The CDAT Protocol System receives time stamp information from the TimeStamp Interface (213) and uses that information in its protocolmanagement, including defining message headers. The CDAT Protocol Systemprovides Header and Message Control (214) to the Packet Control System(202), allowing it to correctly formulate messages that it willtransmit. The header and message control information includes (but notlimited to) time stamp information, packet identification, serviceidentification, and other similar information. The CDAT Protocol Systemreceives the messages from the Sink System using the Acknowledgement andError Processing (217) channel from the Packet Control System. Theprotocol system extracts timing and statistical information that ispassed to the CDAT Analysis (204) function via the Statisticalinformation (218) channel). Other protocol based information is used toupdate the protocol. If the Sink system or the Packet Control Systemdetected errors, this information is passed to the CDAT Protocol System,which extracts the error information and reports the errors to the ErrorManagement (203) function via the Error information (215) channel. Ifthe error has been processed and repaired, the Error Management functionreports the recovery via the Recovery and Restoration (220) channel. Therecovery and restoration information may affect the protocol generationand interpretation, as well as analysis and other functions of thesystem. The CDAT Protocol System exchanges information with the CDATMitigation System (205) over the Event Mitigation Control (219) channel.If an event, such as preemption or network reconfiguration, occurs, thesystem must adjust to the new situation (typically by adjusting thetransmission offset). This mitigation effort may change the protocoldata and the interpretation of returned protocol information.

The Packet Control System (202) can provide message formation, messagepacketization, protocol insertion, and packet transmission to DataService Communications (211) and Network Communications (211). PacketControl System receives message header and message control informationfrom the CDAT Protocol System (201) over the Header and Message Control(214) channel. Timing control is received from the Timing ManagementSystem (200) on the Transmission Timing Control (212) channel. Thosepackets associated with a service and that require timing are delayeduntil the proper offset within the Common Timing Interval. When theproper offset arrives, the delayed packets are transmitted onto the DataService Communications (211) channel. There may be other, non-timedcommunications controlled by the Packet Control System. Those non-timedpackets do not need to wait for a particular time offset and they aretransmitted on the Network Communications (210) channel.

Note that the Data Service Communications and Network Communicationschannels may (and most likely) use the same physical interface toconnect to the network. Therefore, packets that are to be transmitted onthe Packet Control System may be delayed so as not to interfere withtimed packets about to be transmitted on the Data Service Communicationschannel. For example, consider the situation where the system istransmitting service data at time offset 4 milliseconds. Also, considerthe sample system is using a 100 megabit per second Ethernet link toconnect to the network. In addition, the system used as an example has a10,000 bit (1,250 byte) packet to transmit on the Network Communicationschannel That packet would take 100 microseconds to transmit into thenetwork. Therefore, if the packet was to be transmitted anywhere betweenoffset 3.9 to offset 4.0, it would still be transmitting when the timedservice was to be transmitted. The timed service would be delayed due tothe non-timed transmission. Therefore, the non-timed packet would needto delay until after the timed transmission so that the non-timedtransmission would not interfere with the timed service.

The Packet Control system receives data from the Sink System (103 ofFIG. 8) and sends that information to the CDAT Protocol System (201) viathe Acknowledgement and Error Processing (217) channel. Not shown in thearchitecture given in FIG. 9 is a connection to the computer applicationgenerating the service data. While the application is the source of theservice data, it is beyond the scope of this document and in general, itis not a factor in how the system performs its collision detection andavoidance. However, if the application has a large variation in its datatransmission rates, the Packet Control System must insert paddingtraffic into the network to maintain its offset position in the network.For example, if the application did not have any traffic for a largenumber (for example, 8) of Common Timing Intervals, another autonomousservice could attempt to use that offset, and would not detect anycollisions in that offset. Then, when the application again had data, acollision would occur when that data was transmitted. Therefore, thePacket Control System must add padding to the service (packets thatcontain null or non-service data) to ensure that other services candetect and avoid this service. Note however, that the Packet ControlSystem does not need to every interval, just roughly 50% of theintervals (every other interval). The detection algorithms will still beable to detect and avoid a potential collision even if the offset isused only 50% of the time.

Errors, unanticipated and unusual events can and do happen incommunications systems. Handling errors, events, and notifications isthe responsibility of the Error Management (203) function. It receiveserror, event and notification information from the Timing ManagementSystem (200), CDAT Protocol System (201), and CDAT Mitigation System(205) on their Error Information channels (items 221, 215, and 222respectively). As errors are processed, they can be recorded to an ErrorLogging Service (224). As errors are processed and handled, theinformation on the error recovery is reported back to the CDAT ProtocolSystem using the Recovery and Restoration (220) channel. In addition,recovery information may be received from the network by the CDATProtocol System (301). In that case, the recovery information isreported to the Error Management function using the same Recovery andRestoration (220) channel.

CDAT Analysis (204) function can receive statistical information on theStatistical Information (218) channel from the CDAT Protocol System. TheCDAT Analysis function reviews the statistical information looking forcommunications events, such as (but not limited to) preemption, timingdrift, network reconfiguration, or other communications events. A packetbased communications network is inherently jittery—that is twoidentically sized packets traversing the identical path may takeslightly different times to traverse that path through the network. Somefiltering may be required to remove the random variations in timing thatoccurs on the network. Therefore, the CDAT Analysis function requiresmultiple statistics to extract the underlying information on the stateof the communications. In addition, different types of collisionsmanifest themselves differently and often the affect changes over timeand that time changing nature can help identify the type of collision.The CDAT Analysis function then looks for patterns in the receivedstatistics as well as changes to the patterns to determine whatinteractions, collisions, and events are occurring in the network.

The different statistical patterns allow the system to detect thefollowing collisions (but is not limited to just detecting thesecollisions): Multiple service establishments during service setup,preemption by a higher preemption level service, drifting by a servicewhose clock is no longer exactly synchronized to the Common timingInterval, network reconfiguration onto the path used by this service,network reconfiguration onto a different path from the one that thisservice was using, fully utilized paths, insufficient bandwidth paths,effective available path bandwidth, Services that only use the networkfor a portion of the time (that is, only use 50% of the Common TimeIntervals) and other such interactions and collisions. In addition, theanalysis can reveal if the clock from the Timing Management System (200)is drifting in relationship to the Common Timing Interval, which maycause the data from this ACS to collide with other ACS data flows withinthe network. These collisions and interactions are reported to the CDATMitigation System (205) via the Event Detection information (223)channel.

The CDAT Mitigation System (205) receives event and collisioninformation from the CDAT Analysis (204) via the Event DetectionInformation (223) channel. Mitigation (205) uses information from theanalysis that identifies the type of collision or event to determinewhat the system needs to do to mitigate and repair the collision orevent. Mitigation (205) reviews the information it has about theservices currently using the path from the source to the sink and itreviews what time offsets are currently occupied. Mitigation (205) thenselects a new offset and informs the CDAT Protocol System (201) aboutthe change in offset. As new offsets are used, new statistics related tothose new offsets will be received and analyzed by the CDAT Analysis(204) function. The analysis may indicate the new offset does not haveany collisions, in which case the new offset can be used by the service.However, it may turn out that no offset can be found that results in nocollisions. In that case, the service must be terminated, and the noavailable offset error is sent to the Error Management (203) functionvia the Error Information (222) channel.

The Data Sink (item 103 in FIG. 8) system mirrors the Data Source (item100 in FIG. 8) system, but is simpler in concept than the Source system.Data Sink system (103) must implement a number of functions in order toprovide the capabilities described in the present embodiment. An exampleof an architecture to implement these functions is given in FIG. 10.Other architectures or expansions of this sample architecture may alsobe used to provide the capabilities of communications described hereinwith this present embodiment. The functions identified in FIG. 10 can beimplemented in hardware, software, firmware, or some combination ofthese elements and include Time Management System (300), CDAT ProtocolSystem (301), Packet Control System (302), Error Management (303), CDATAnalysis (304), and CDAT Mitigation System (305). These functions mustexchange data and control information, as shown in FIG. 10, which willbe described below.

Referring primarily to FIG. 10, the various functions and data exchangedof the Data Source system will now be described below.

Unlike the Data Source (100 of FIG. 8) system, the Data Sink (103 ofFIG. 7) system does not need to transmit at specific offsets within theCommon Timing Interval. Therefore, the Timing Management System (300) isused to provide time stamping to the Packet Control System (302) via theTime Stamp interface (313) and interval timing to the CDAT ProtocolSystem (301) via the Time Interval Control System (312). The TimingManagement System (300) receives timing information from an externalsource via the External Time Source (316) communications channel. Thistiming information may come from one or more sources, including, but notlimited to, internal time card that meets Stratum 3 or bettercapability, external timing from a BITS source, timing extraction from aGPS receiver system, synchronization over the network via anetwork-based timing system, or other similar reference timing.

The CDAT Protocol System (301) is the system that manages the protocolused to implement the present embodiment. It is also the system thatmanages the system states as identified in FIG. 5. The protocol definesthe information that must be transferred from the Sink system to theSource system in addition to the service's data traffic. The informationincludes, but not limited to, time stamp information, packetidentification, service identification, and error information (if any).The CDAT Protocol System also receives information from the Sourcesystem (block 100 of FIG. 8) that includes (but not limited to) transmitpacket time stamps and service control information. It is the flow ofpackets from the source and the statistical analysis that controls thestates and state transitions of the system as shown in FIG. 5.

The CDAT Protocol System (301) receives protocol data from the PacketControl System via the Protocol Removal and interpretation (317 a)channel. It sends the packet information (including time stamps) to theCDAT Analysis (304) via the Statistical Information (318) channel. AfterAnalysis (304) performs its statistical calculations, it returns theinformation to the CDAT Protocol system via the same StatisticalInformation (318) channel. Protocol (301) creates an acknowledgementpacket that includes the error (if any) and packet reception informationand sends it back to the Packet Control System (302) via theAcknowledgement Processing (317 b) channel. The Statistical and timestamp information is combined with Service protocol information and sentto the Packet Control System via the Header and Packet Evaluation (314)channel. Note that an Acknowledgement should be returned after eachCommon Timing Interval's worth of service data is received. However, thestatistics and time stamp information has the option of beingaccumulated and sent back only periodically (for example, after every 3or 4 intervals), which would reduce the amount of traffic on thenetwork.

Protocol (301) sends information about service setup and termination tothe CDAT Mitigation System (305) via the Service Setup and Termination(319 b) channel, and receives information about changing service offsetsfrom the CDAT Mitigation System via the Event Reporting (319 a) channel.While the receiver does not perform any mitigation acts, thesecommunications allow Protocol (301) to properly maintain its servicestate and to also ensure the Source maintains its own state informationas well.

The Packet Control System (302) receives service data from the SourceSystem (100 of FIG. 8) timestamps each packet as it arrives. Packet(302) also transmits acknowledgements, statistical information, andother protocol or service data to the Source. These communications usethe Data Service Communications (311) channel. Other, non-serviceoriented communications uses the Network Communications (310) channel.Note that Data (311) and Network (310) may (and usually will) share thesame physical network interface.

Errors, unanticipated events, and unusual notifications can and dohappen in communications systems. Handling errors, events, andnotifications is the responsibility of the Error Management (303)function. It receives error, event, and notification information fromthe Timing Management System (300), CDAT Protocol System (301), and CDATMitigation System (305) on their Error Information channels (items 321,315, and 322 respectively). As errors are processed, they can berecorded to an Error Logging Service (324). As errors are processed andhandled, the information on the error recovery is reported back to theCDAT Protocol System using the Recovery and Restoration (320) channel.In addition, recovery information may be received from the network bythe CDAT Protocol System (301). In that case, the recovery informationis reported to the Error Management function using the same Recovery andRestoration (320) channel.

CDAT Analysis (304) performs statistical calculations on the receivedservice packets. These statistics include, but not limited to, packetreceive timestamps, inter-packet timing (the time difference betweeneach packet received within the current interval), total accumulationtime (the difference in time from when the first packet arrived and thelast packet arrived within the current interval), and inter-intervaltiming (the time difference between the arrival of the first packet inthe previous interval and the first packet in the current interval. Inaddition, Analysis (304) looks for other indicators of collision ornetwork reconfiguration, such as, but not limited to, missing packets,out-of-order packets, duplicate packets, and packets delayed longer thana single Common Timing Interval. These last items are considered eventsand are reported to the CDAT Mitigation System (305) via the EventDetection Information (323) channel.

On the Sink side, the CDAT Mitigation System (305) only detects that acollision, network reconfiguration, or other event has occurred and thesource must be made aware of the event. State information (primarilyservice start and termination) is received from Protocol (301) via theService Setup and Termination (319 b) channel. Event reporting (that is,events that must be reported to the Data Source) is sent to Protocol(301) via the Event Reporting (319 a) channel. Mitigation (305) receivesinformation about events from Analysis (304) via the Event DetectionInformation (323) channel. If Mitigation (305) detects an erroneous orunanticipated event (such as loss of data or unexpected termination ofthe service), the error is sent to the Error Management (303) system viathe Error Information (322) channel.

Referring to items in FIG. 8, FIG. 9, and FIG. 10 the overall methods ofthe systems will be reviewed and described from a high level. The SourceSystem (100) is attempting to send data to the Sink System (103) acrossa packet switched network (PSN) and will use the methods depicted inFIG. 9. The normal PSN environments are probabilistic in nature.However, using the described systems and methods, the Source and Sinksystems will communicate in a deterministic manner. Determinism isachieved by the Source system first using the methods of the TimingSystem (200) to define a Common Timing Interval; Second using Timing(200) methods to control when the Packet System (202) will transmit itspackets into the network by third, using Timing (200) methods to selectan offset from a plurality of all available offsets within a CommonTiming Interval. Fourth, using Protocol (201) methods to select apriority for the packets based on preemption level (and not based onpacket type, service type, or other, non-deterministic prioritycriteria). Fifth, using Protocol (201) methods to provide informationneeded in the analysis of received packets at the Sink System. Andsixth, analyzing returned statistics using Analysis (204) methods todetect a collision or other event. The information provided by Protocol(201) methods can include, but is not limited to including, servicetype, service identification, message identification, maximum number ofbytes transmitted in each interval, minimum number of bytes transmittedin each interval, time stamp, time interval for the service, forexample, service information, and padding to equal maximum number ofbytes. Protocol (201) method may also break the data packets intomultiple packets of substantially the same size, with at least twopackets created for transmission during each transmission cycle(interval). The Packet System (202) will transmit this plurality ofpackets into the network sequentially.

The Source will continue to transmit at its determined offset, allowingother services to detect and avoid this service, thus eliminatingcollisions and the associated impairments in the network. However,network reconfigurations and service preemption may cause the status ofthe service to change. This changing status is detected by Analysis(204) methods and adjustments are made to the service by Mitigation(205) methods that will restore the service back to its deterministicand unimpaired state.

The Sink System (103) uses its methods identified in FIG. 10 duringreception of service data. The Timing (300) methods are used to definethe Common Timing Interval at the receiver, and to timestamp incomingpackets. The Packet Control (302) methods receive the incoming packetsand timestamps them, sending the packets and timestamp information tothe Protocol System (301) methods for protocol extraction. The timestampand packet control information is sent to the Analysis (304) methods inorder to have a variety of statistics about the received packetscreated. This statistical information is sent back to the Source as anacknowledgement and statistical information, so the Source can monitorthe transmission and detect events, reconfigurations, and preemptions.The acknowledgement messages can include, but are not limited toincluding, minimum/maximum/average inter-packet time, added spacing(calculated using the actual transmission time of the packets minus theexpected packet transmission time, that is, the time the packets shouldtake based on path bandwidth), changes to received offset (that ischanges in received delay) and other such statistics. The SinkMitigation (305) system performs additional mitigation analysis byevaluating the statistics to determine if the source should perform amitigation effort. The combination of the Sink and Source performingmitigation determination will minimize the time between when an eventoccurs and when the system mitigates the effects of that event.

The Source and Sink combine to determine the proper transmission offsetthrough the methods of this embodiment. The Source Methods includeselecting an offset from all available offsets, creating a set ofpackets from the service data and protocol data, transmitting the set ofpackets starting at the offset and continuing until the complete set ofpackets has been transmitted, receiving statistical information aboutthe reception of those packets, evaluating the statistics against aplurality of possible reconfiguration, collision, preemption, or otherevents to detect the absence or presence of one or more events, and ifone or more events is detect, to use further methods to mitigate theeffects of the events by selecting and trying other offsets until eitheran offset is found that provides unimpeded communications, or alloffsets were evaluated, and no offset could be found, indicating thenetwork is saturated.

The Sink system provided a further method of the present embodiment forreceiving packets that convert a probabilistic, packet-basedcommunications system into a deterministic communications system caninclude, but is not limited to including, the steps of time stamping areceived packet; evaluating received packets to create statisticsconcerning the packet reception, creating an acknowledgement packetincluding, but not limited to, service type, service identification,message identification, packet identification, packet size, packet timestamp, and packet statistics for each packet and for the block ofpackets received each interval, recording and reporting information;calculating and storing statistics; creating a profile of a time sliceof packet reception based on the statistics; sending an error indicationif a service cannot be established based on effective bandwidth andservice size; receiving and recording service data and statistics;sending statistics at pre-selected intervals.

An embodiment of the information transmission system of these teachingsis shown in FIG. 12. Referring to FIG. 12, the embodiment shown thereinincludes a time selection component 637, a transceiver component 634,the transceiver component including a transmitter subcomponent and areceiver subcomponent. The transmitter subcomponent is meeting apredetermined time within the predetermined time interval, thepredetermined time being determined by the time selection component 637.The embodiment shown in FIG. 12 also includes a transmission reportanalysis component 640. The transmission report analysis component 640analyzes information related to transmission statistics received by thereceiver subcomponent of the transceiver 634. The transmissionstatistics are analyzed in order to ascertain whether transmissionproblems occurred. If transmission problems occurred, the transmissionreport analysis component 640 request another predetermined time fortransmission from the time selection component 637.

An embodiment of the information receiving system of these teachings isshown in FIG. 13. Referring to FIG. 13, the embodiment shown thereinincludes a transceiver component 770, the transceiver component having areceiver subcomponent and a transmitter subcomponent. The receiversubcomponent receives information from a transmission system. Theembodiment shown in FIG. 13 also includes a transmission statisticgeneration component 740; the transmission statistic generationcomponent 740 gathers information related to transmission statistics forthe received information. The gathered information is transmitted by thetransmitter subcomponent of the transceiver 770

Continuing to refer primarily to FIG. 9, FIG. 10, and FIG. 11, theSource and Sink methods of the present embodiment can be, in whole or inpart, implemented electronically. In one embodiment, such as that shownin FIG. 11, the transmitter system (100 from FIG. 8) or receiver system(103 from FIG. 8) can include one or more processors 810, and computerusable media 830 having computer readable code embodied therein capableof causing one or more processors 810 to implement the methods of thisinvention. The one or more processors 810, the computer usable media830, and the other components are operatively connected by means of aconnection component 815 (the connection component may be, for example,a computer bus). In addition, a transmitter system and a receiver systemcan coexist on a single platform consisting of one or more processors810 and computer usable media 830. The coexisting system can be usedfor, but not limited to, bidirectional services, service expansion (thereceiver receives the data from one service and then sends it tomultiple sink systems), service gateway (the receiver receives data onone network and gives it to the source to transmit onto another network)and other uses.

Signals representing actions taken by elements of system 100 (FIG. 8,and methods shown in FIG. 9) can travel over electronic communicationsmedia. Control and data information can be electronically executed andstored on computer-readable media. System 100 (FIG. 8) can beimplemented to execute on a node in a communications network (101-102)or via the Internet. Common forms of computer-readable media caninclude, but are not limited to, for example, a floppy disk, a flexibledisk, a hard disk, magnetic tape, or any other magnetic medium, a CDROMor any other optical medium, punched cards, paper tape, or any otherphysical medium with patterns of holes or ink or characters, a RAM, aPROM, an EPROM, a FLASH-EPROM, or any other memory chip or cartridge, orany other medium from which a computer can read.

Although the teachings have been described with respect to variousembodiments, it should be realized these teachings are also capable of awide variety of further and other embodiments.

What is claimed is:
 1. A method for transmitting information over anetwork in a deterministic fashion, the method comprising the steps of:a. determining the data to transmit during a predetermined interval andconverting that data into a set of packets; b. selecting a time totransmit, the time being an offset selected within a predetermined timeinterval; a transmitting component transmitting the data beingsynchronized to the predetermined time interval using an external timingsource; a receiver component receiving the data also synchronized to theexternal timing source; the accuracy of the external timing sourceselected in order to keep timing of the predetermined intervalconsistent for entire communication duration; transmission being in oneof a number of predetermined states and transitioning to a next statefrom the number of predetermined states to establish and maintaincommunication; said next state not being known apriori from a previousstate; said predetermined states comprise a state for service timeoffset detection and avoidance testing and a state for collision ornetwork alteration detection; c. transmitting packet information overthe network; d. receiving a transmission report from the receivercomponent; the transmission report comprising information related totransmission statistics; e. obtaining the transmission statistics; f.analyzing the transmission statistics in order to ascertain whethertransmission problems occurred; the transmission problems comprisingcollisions, network reconfiguration, or preemption; g. selecting, iftransmission problems occurred, another time to transmit; said anothertime being an unused and previously unselected offset selected withinthe predetermined time interval; and h. repeating, if transmissionproblems occurred, steps a) through g) until either the problems areeliminated or no unselected offsets remain; wherein the network uses atleast three priority levels, a lowest priority level being best-efforttraffic.